package com.ruoyi.system.service.impl;

import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.system.domain.Groups;
import com.ruoyi.system.mapper.GroupsMapper;
import com.ruoyi.system.service.IGroupsService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * 分组Service业务层处理
 *
 * @author ruoyi
 * @date 2024-02-09
 */
@Service
public class GroupsServiceImpl implements IGroupsService {
    @Autowired
    private GroupsMapper groupsMapper;

    /**
     * 根据用户ID查询分组
     *
     * @return 分组 list
     */
    public List<Groups> selectGroupsByUserId() {
        long userId = SecurityUtils.getUserId();
        return groupsMapper.selectGroupsByUserId(userId);

    }

    @Override
    public Object selectFriendGroups() {
        long userId = SecurityUtils.getUserId();
        List<Groups> list = groupsMapper.selectFriendGroups(userId);

        //查询每个分组中有多少用户

        return list;

    }

    /**
     * 查询分组
     *
     * @param groupId 分组主键
     * @return 分组
     */
    @Override
    public Groups selectGroupsByGroupId(Long groupId) {
        return groupsMapper.selectGroupsByGroupId(groupId);
    }

    /**
     * 查询分组列表
     *
     * @param groups 分组
     * @return 分组
     */
    @Override
    public List<Groups> selectGroupsList(Groups groups) {
        groups.setUserId(SecurityUtils.getUserId());
        return groupsMapper.selectGroupsList(groups);
    }

    /**
     * 新增分组
     *
     * @param groups 分组
     * @return 结果
     */
    @Override
    public int insertGroups(Groups groups) {
        groups.setUserId(SecurityUtils.getUserId());
        return groupsMapper.insertGroups(groups);
    }

    /**
     * 修改分组
     *
     * @param groups 分组
     * @return 结果
     */
    @Override
    public int updateGroups(Groups groups) {
        return groupsMapper.updateGroups(groups);
    }

    /**
     * 批量删除分组
     *
     * @param groupIds 需要删除的分组主键
     * @return 结果
     */
    @Override
    public int deleteGroupsByGroupIds(Long[] groupIds) {
        return groupsMapper.deleteGroupsByGroupIds(groupIds);
    }

    /**
     * 删除分组信息
     *
     * @param groupId 分组主键
     * @return 结果
     */
    @Override
    public int deleteGroupsByGroupId(Long groupId) {
        return groupsMapper.deleteGroupsByGroupId(groupId);
    }
}
